Administrative tasks support the day to day operation of computing devices, such as laptop, desktops, and the like. For example, administrative tasks typically allow a user to create a new folder, install or upgrade an application, and perform various other system tasks. System administrators, who maintain networked computers, perform even more complex administrative tasks, such as creating new users, deploying software and software patches, monitoring the network, troubleshooting the network, and the like. Often, command line interfaces or graphical user interfaces (GUI) facilitate execution of administrative tasks.
Most graphical user interfaces require the user to navigate a series of menus or pages and then click on a desired option. According to such interfaces, the user is required to follow the series of menus or pages and is not allowed to jump from one page to another without starting over or traversing up and back down the series of pages. Such interfaces may be referred to as restricted navigation interfaces wherein the user must follow a regimented and predetermined procedure to achieve an administrative goal. A novice user may benefit from using such a GUI because it provides helpful information on each menu or page that directs the novice user to the desired administrative task. However, for many advanced users, such as system administrators, using a GUI that has rigid navigation restrictions is very cumbersome. These advanced users already know the administrative task that they want to perform. In addition, advance users desire at least some degree of task automation. However, automating administrative tasks accessed through a GUI is very difficult. Also, if the GUI changes, the corresponding automation may no longer operate properly. Thus, many advanced users prefer using a more robust command line interface.
A command line interface allows a user to directly perform a task by typing in a command. One disadvantage with a command line interface is that the user must know the exact command to type in because helpful information is not provided on the display. However, once the command is known, it becomes much more efficient to type the command than to navigate a series of menus. In addition, tasks executed from a command line interface may be automated. For example, when users notice that they are continually typing the same commands (e.g., a series of commands, etc.) they may create a script (e.g., a .bat file) that includes the repetitive commands. When the script is executed, all the commands listed in the script are executed. The users may also soon notice that different scripts contain similar items. Upon noticing this, the users may wish to create parameterized subroutines within the script to further automate the tasks.
However, many scripting solutions that provide sophisticated automation features (e.g., parameterized subroutines) are developed in the same manner as a full blown application and require system programming knowledge. Thus, these solutions are not ideal for system administrators who do not generally have sophisticated programming knowledge.
Therefore, currently, system administrators must either forego automation or automate using systems programming skills. Neither option is highly desirable. If the administrator selects to forego automation, additional costs are incurred to support several other administrators to help run the tasks manually. However, if the administrator selects to automate the tasks, costs are incurred to support a programming environment and to obtain the necessary programming skills. In addition, maintenance costs are expensive because the automated tool must be rebuilt whenever a change occurs.
Therefore, there is a need for an administrative tool framework that allows administrators to effectively and efficiently automate administrative tasks.